from pyspark import SparkConf, SparkContext

if __name__ == '__main__':
    # 构建SparkConf对象
    conf = SparkConf().setAppName("test").setMaster("local[*]")
    # 构建SparkContext执行环境入口对象
    sc = SparkContext(conf=conf)

    rdd = sc.parallelize([("a", 1), ("a", 2), ("B", 3), ("b", 3), ("A", 1), ("b", 10)], 3)

    rdd1 = rdd.sortByKey(ascending=False, numPartitions=1, keyfunc=lambda x: str(x).lower())
    """
    sortByKey跟sortBy类型，只针对KV型数据，默认按照key进行排序
    参数1：指定排序的列
    参数2：升序/降序
    参数3：可以针对排序的key进行一些预处理，例如大小写转换等
    
    如果要保证全局有序，分区数量设置为1
    """
    print(rdd1.collect())
